In [10]:
from crysfipy.reion import re, neutronint, susceptibility as susc
import crysfipy.const as C
import numpy as np

np.set_printoptions(linewidth=130)
np.set_printoptions(precision=2)

1) const.py

In [13]:
template = """Information about {0.name} ion:
*************************
{0.J2p1:.0f} energy levels, J = {0.J}, gJ = {0.gJ}
alpha = {0.Alpha}, beta = {0.Beta}, gamma = {0.Gamma}
"""
print(template.format(C.ion("Ce")))
Information about ce ion:
*************************
6 energy levels, J = 2.5, gJ = 0.857142857143
alpha = -0.0571428571429, beta = 0.00634920634921, gamma = 0.0

2) CF hamiltonian diagonalization

In [16]:
# create reion object:
ce = re("Ce", [1,0,0],
        ["t", -0.173477508,
        0.001084591,
        -0.012701252,
        -3.34835E-06,
        0.0000097,
        ])
ce.calculate()
ce.getlevels()
print(ce)
Energy levels:
E(0) =  0.0000   1fold-degenerated
E(1) =  0.4180   1fold-degenerated
E(2) =  2.0374   1fold-degenerated
E(3) =  2.0787   1fold-degenerated
E(4) =  3.5225   1fold-degenerated
E(5) =  4.7905   1fold-degenerated

3) Calculation of susceptibility

In [17]:
temps = [5,10,50,100,300]
for T in temps:
    print("T = {0} K \tchi_CF = {1} uB/T".format(T, susc(ce, T)))
T = 5 K         chi_CF = 0.0288552475141 uB/T
T = 10 K        chi_CF = 0.00716223624106 uB/T
T = 50 K        chi_CF = 0.000224584463989 uB/T
T = 100 K       chi_CF = 3.65918038894e-05 uB/T
T = 300 K       chi_CF = -4.60660668533e-06 uB/T

4) Neutron intensities

In [20]:
# tbd